package com.delivery.www.service;

import com.delivery.www.po.Coupon;
import com.delivery.www.po.HaveCoupon;

import java.util.List;

/**
 * @author 12970
 */
public interface CouponService {
    /**
     * 获取店铺抵用券
     *
     * @param storeId 店铺id
     * @return 所有优惠券
     */
    List<Coupon> getCoupon(int storeId);

    /**
     * 商家新增抵用券
     *
     * @param storeId  店铺id
     * @param value    面值
     * @param min      最小值
     * @param validity 有效期
     * @return 是否成功
     */
    boolean addCoupon(int storeId, Float value, Float min, int validity);

    /**
     * 删除抵用券
     *
     * @param couponId 优惠券id
     * @return 是否成功
     */
    boolean deleteCoupon(int couponId);

    /**
     * 修改优惠券面值
     *
     * @param couponId 优惠券id
     * @param value    新值
     * @return 修改行数
     */
    boolean modifyCouponValue(int couponId, Float value);

    /**
     * 修改优惠券最低消费
     *
     * @param couponId 优惠券id
     * @param value    新值
     * @return 修改行数
     */
    boolean modifyCouponMin(int couponId, Float value);

    /**
     * 修改优惠券有效时间
     *
     * @param couponId 优惠券id
     * @param value    新值
     * @return 修改行数
     */
    boolean modifyCouponValidity(int couponId, int value);

    /**
     * 获取用户领取的优惠券
     *
     * @param list  存放id
     * @param money 金额
     * @return 优惠券
     */
    List<Coupon> getUserCoupon(List<HaveCoupon> list, Float money);

    /**
     * 获取用户领取的优惠券
     *
     * @param list 存放id
     * @return 优惠券
     */
    List<Coupon> getUserCoupon(List<HaveCoupon> list);

    /**
     * 获取所有优惠券
     *
     * @return 优惠券列
     */
    List<Coupon> getAllCoupon();

    /**
     * 修改判断
     *
     * @param field    修改哪一字段
     * @param value    新值
     * @param couponId 优惠券id
     * @return 是否成功
     */
    boolean judgeField(int couponId, String field, String value);

}
